package com.zeus.core.open.api.annotation;

import com.zeus.common.enums.ZeusAlarmLevelEnum;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 宙斯告警注解
 *
 * @author wangfeixiong126@gmail.com  2021/6/22 02:13
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface ZeusAlarmAop {

    /**
     * 告警级别
     * @see ZeusAlarmLevelEnum
     * @return AlarmLevelEnum.UN_KNOW 默认返回未知
     */
    ZeusAlarmLevelEnum level() default ZeusAlarmLevelEnum.UN_KNOW;

    /**
     * 告警信息
     * @return String 默认返回空字符串
     */
    String message() default "";

    /**
     * 解决办法
     * @return String 默认返回空字符串
     */
    String solution() default "";
}
